namespace ext.grid
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Specialised GridView for rendering Pivot Grid components. Config can be passed to the PivotGridView via the PivotGrid constructor&apos;s
	/// viewConfig option:
	/// 
	/// new Ext.grid.PivotGrid({
	/// viewConfig: {
	/// title: &apos;My Pivot Grid&apos;,
	/// getCellCls: function(value) {
	/// return value &gt; 10 &apos;red&apos; : &apos;green&apos;;
	/// }
	/// }
	/// });
	///  Currently {@link #title} and {@link #getCellCls} are the only configuration options accepted by PivotGridView. All other
	/// interaction is performed via the {@link Ext.grid.PivotGrid PivotGrid} class.
	/// </summary>
	/// <htmlSummary>
	/// Specialised GridView for rendering Pivot Grid components. Config can be passed to the PivotGridView via the PivotGrid constructor&apos;s
	/// viewConfig option:
	/// &lt;pre&gt;&lt;code&gt;
	/// new Ext.grid.PivotGrid({
	/// viewConfig: {
	/// title: &apos;My Pivot Grid&apos;,
	/// getCellCls: function(value) {
	/// return value &gt; 10 &apos;red&apos; : &apos;green&apos;;
	/// }
	/// }
	/// });
	/// &lt;/code&gt;&lt;/pre&gt;
	/// &lt;p&gt;Currently {@link #title} and {@link #getCellCls} are the only configuration options accepted by PivotGridView. All other
	/// interaction is performed via the {@link Ext.grid.PivotGrid PivotGrid} class.&lt;/p&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
	[ScriptName("PivotGridView")]
	[ScriptNamespace("Ext.grid")]
	[Imported()]
	public partial class PivotGridView : ext.grid.GridView
	{
		
		#region Constructors
		public PivotGridView(ext.grid.PivotGridView_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public PivotGridView()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>Optional title to be placed in the top left corner of the PivotGrid. Defaults to an empty string.</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("title")]
		public string Title;
		
		/// <summary>
		/// Optional function which should return a CSS class name for each cell value. This is useful when
		/// color coding cells based on their value. Defaults to undefined.
		/// </summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("getCellCls")]
		public System.Delegate GetCellCls;
		#endregion
		
		#region Properties
		/// <summary>The CSS class added to all group header cells. Defaults to &apos;grid-hd-group-cell&apos;</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("colHeaderCellCls")]
		[IntrinsicProperty()]
		public string ColHeaderCellCls
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>The element containing all row headers</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("rowHeadersEl")]
		[IntrinsicProperty()]
		public ext.Element RowHeadersEl
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>The element that contains the optional title (top left section of the pivot grid)</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("headerTitleEl")]
		[IntrinsicProperty()]
		public ext.Element HeaderTitleEl
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>
		/// Returns the headers to be rendered at the top of the grid. Should be a 2-dimensional array, where each item specifies the number
		/// of columns it groups (column in this case refers to normal grid columns). In the example below we have 5 city groups, which are
		/// each part of a continent supergroup. The colspan for each city group refers to the number of normal grid columns that group spans,
		/// so in this case the grid would be expected to have a total of 12 columns:
		/// 
		/// [
		/// {
		/// items: [
		/// {header: &apos;England&apos;, colspan: 5},
		/// {header: &apos;USA&apos;, colspan: 3}
		/// ]
		/// },
		/// {
		/// items: [
		/// {header: &apos;London&apos;, colspan: 2},
		/// {header: &apos;Cambridge&apos;, colspan: 3},
		/// {header: &apos;Palo Alto&apos;, colspan: 3}
		/// ]
		/// }
		/// ]
		/// 
		/// In the example above we have cities nested under countries. The nesting could be deeper if desired - e.g. Continent -&gt; Country -&gt;
		/// State -&gt; City, or any other structure. The only constaint is that the same depth must be used throughout the structure.
		/// </summary>
		/// <htmlSummary>
		/// Returns the headers to be rendered at the top of the grid. Should be a 2-dimensional array, where each item specifies the number
		/// of columns it groups (column in this case refers to normal grid columns). In the example below we have 5 city groups, which are
		/// each part of a continent supergroup. The colspan for each city group refers to the number of normal grid columns that group spans,
		/// so in this case the grid would be expected to have a total of 12 columns:
		/// &lt;pre&gt;&lt;code&gt;
		/// [
		/// {
		/// items: [
		/// {header: &apos;England&apos;, colspan: 5},
		/// {header: &apos;USA&apos;, colspan: 3}
		/// ]
		/// },
		/// {
		/// items: [
		/// {header: &apos;London&apos;, colspan: 2},
		/// {header: &apos;Cambridge&apos;, colspan: 3},
		/// {header: &apos;Palo Alto&apos;, colspan: 3}
		/// ]
		/// }
		/// ]
		/// &lt;/code&gt;&lt;/pre&gt;
		/// In the example above we have cities nested under countries. The nesting could be deeper if desired - e.g. Continent -&gt; Country -&gt;
		/// State -&gt; City, or any other structure. The only constaint is that the same depth must be used throughout the structure.
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		/// <returns>
		/// A tree structure containing the headers to be rendered. Must include the colspan property at each level, which should
		/// be the sum of all child nodes beneath this node.
		/// </returns>
		[ScriptName("getColumnHeaders")]
		public System.Array GetColumnHeaders()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Returns the headers to be rendered on the left of the grid. Should be a 2-dimensional array, where each item specifies the number
		/// of rows it groups. In the example below we have 5 city groups, which are each part of a continent supergroup. The rowspan for each
		/// city group refers to the number of normal grid columns that group spans, so in this case the grid would be expected to have a
		/// total of 12 rows:
		/// 
		/// [
		/// {
		/// width: 90,
		/// items: [
		/// {header: &apos;England&apos;, rowspan: 5},
		/// {header: &apos;USA&apos;, rowspan: 3}
		/// ]
		/// },
		/// {
		/// width: 50,
		/// items: [
		/// {header: &apos;London&apos;, rowspan: 2},
		/// {header: &apos;Cambridge&apos;, rowspan: 3},
		/// {header: &apos;Palo Alto&apos;, rowspan: 3}
		/// ]
		/// }
		/// ]
		/// 
		/// In the example above we have cities nested under countries. The nesting could be deeper if desired - e.g. Continent -&gt; Country -&gt;
		/// State -&gt; City, or any other structure. The only constaint is that the same depth must be used throughout the structure.
		/// </summary>
		/// <htmlSummary>
		/// Returns the headers to be rendered on the left of the grid. Should be a 2-dimensional array, where each item specifies the number
		/// of rows it groups. In the example below we have 5 city groups, which are each part of a continent supergroup. The rowspan for each
		/// city group refers to the number of normal grid columns that group spans, so in this case the grid would be expected to have a
		/// total of 12 rows:
		/// &lt;pre&gt;&lt;code&gt;
		/// [
		/// {
		/// width: 90,
		/// items: [
		/// {header: &apos;England&apos;, rowspan: 5},
		/// {header: &apos;USA&apos;, rowspan: 3}
		/// ]
		/// },
		/// {
		/// width: 50,
		/// items: [
		/// {header: &apos;London&apos;, rowspan: 2},
		/// {header: &apos;Cambridge&apos;, rowspan: 3},
		/// {header: &apos;Palo Alto&apos;, rowspan: 3}
		/// ]
		/// }
		/// ]
		/// &lt;/code&gt;&lt;/pre&gt;
		/// In the example above we have cities nested under countries. The nesting could be deeper if desired - e.g. Continent -&gt; Country -&gt;
		/// State -&gt; City, or any other structure. The only constaint is that the same depth must be used throughout the structure.
		/// </htmlSummary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		/// <returns>
		/// A tree structure containing the headers to be rendered. Must include the colspan property at each level, which should
		/// be the sum of all child nodes beneath this node.
		/// Each group may specify the width it should be rendered with.
		/// </returns>
		[ScriptName("getRowHeaders")]
		public System.Array GetRowHeaders()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the total width of all row headers as specified by {@link #getRowHeaders}</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		/// <returns>The total width</returns>
		[ScriptName("getTotalRowHeaderWidth")]
		public System.Number GetTotalRowHeaderWidth()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the title text in the top left segment of the PivotGridView</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		/// <param name="title">The title</param>
		[ScriptName("setTitle")]
		public void SetTitle(string title)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Refreshs the grid UI</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		/// <param name="headersToo">True to also refresh the headers</param>
		[ScriptName("refresh")]
		public void Refresh(bool headersToo)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Refreshs the grid UI</summary>
		/// <definedin>src\widgets\grid\PivotGridView.js</definedin>
		[ScriptName("refresh")]
		public void Refresh()
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
